<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  <html xmlns="http://www.w3.org/1999/xhtml">
		<head>
			<!-- template designed by Marco Von Ballmoos  -->
			<title>The Sitemap</title>
			<link rel="stylesheet" href="../media/stylesheet.css" />
						<script src="../media/lib/classTree.js"></script>
												<script language="javascript" type="text/javascript">
				var imgPlus = new Image();
				var imgMinus = new Image();
				imgPlus.src = "../media/images/plus.png";
				imgMinus.src = "../media/images/minus.png";
				
				function showNode(Node){
							switch(navigator.family){
								case 'nn4':
									// Nav 4.x code fork...
							var oTable = document.layers["span" + Node];
							var oImg = document.layers["img" + Node];
									break;
								case 'ie4':
									// IE 4/5 code fork...
							var oTable = document.all["span" + Node];
							var oImg = document.all["img" + Node];
									break;
								case 'gecko':
									// Standards Compliant code fork...
							var oTable = document.getElementById("span" + Node);
							var oImg = document.getElementById("img" + Node);
									break;
							}
					oImg.src = imgMinus.src;
					oTable.style.display = "block";
				}
				
				function hideNode(Node){
							switch(navigator.family){
								case 'nn4':
									// Nav 4.x code fork...
							var oTable = document.layers["span" + Node];
							var oImg = document.layers["img" + Node];
									break;
								case 'ie4':
									// IE 4/5 code fork...
							var oTable = document.all["span" + Node];
							var oImg = document.all["img" + Node];
									break;
								case 'gecko':
									// Standards Compliant code fork...
							var oTable = document.getElementById("span" + Node);
							var oImg = document.getElementById("img" + Node);
									break;
							}
					oImg.src = imgPlus.src;
					oTable.style.display = "none";
				}
				
				function nodeIsVisible(Node){
							switch(navigator.family){
								case 'nn4':
									// Nav 4.x code fork...
							var oTable = document.layers["span" + Node];
									break;
								case 'ie4':
									// IE 4/5 code fork...
							var oTable = document.all["span" + Node];
									break;
								case 'gecko':
									// Standards Compliant code fork...
							var oTable = document.getElementById("span" + Node);
									break;
							}
					return (oTable && oTable.style.display == "block");
				}
				
				function toggleNodeVisibility(Node){
					if (nodeIsVisible(Node)){
						hideNode(Node);
					}else{
						showNode(Node);
					}
				}
			</script>
					</head>
		<body>
			<div class="page-body">			
	<table class="tutorial-nav-box">
	<tr>
		<td style="width: 30%">
							<a href="../Nexista/tutorial_reference.pkg.html"><img src="../media/images/previous_button.png" alt="Previous"></a>
					</td>
		<td style="text-align: center">
							<a href="../Nexista/tutorial_reference.pkg.html"><img src="../media/images/up_button.png" alt="Up"></a>
					</td>
		<td style="text-align: right; width: 30%">
							<a href="../Nexista/tutorial_sitemap.gates.pkg.html"><img src="../media/images/next_button.png" alt="Next"></a>
					</td>
	</tr>
	<tr>
		<td style="width: 30%">
							<span class="detail">Reference</span>
					</td>
		<td style="text-align: center">
							<span class="detail">Reference</span>
					</td>
		<td style="text-align: right; width: 30%">
							<span class="detail">map:gates</span>
					</td>
	</tr>
</table>
	
<div><a name=""></a><div class="ref-title-box"><h1 class="ref-title">The Sitemap</h1></div>
 
 <span><a name="overview"></a><h2 class="title">Overview</h2><p>The sitemap represents a schematic of the application. It is an XML file
 which offers special tags that represent various logic aspects such as if/else, database
 queries, XSL transformation, etc....</p>
 <p>Each page or <em>gate</em> is designed or wired using these tags. At build time, the <a href="../Nexista/Foundry.html">Foundry</a> class uses the sitemap to compile individual php files for each gate as well as installs the necessary support files for the application to run.</p>

<p>To illustrate the inner workings of Nexista, let us follow through a sample 
  sitemap:</p>
<p><em>Example 1: A sample sitemap</em></p>
<pre class="listing"><pre>&lt;?xml version=&quot;1.0&quot;?&gt; 
&lt;map:sitemap xmlns:map=&quot;http://www.nexista.com/sitemap&quot;&gt; 

    &lt;map:gate name=&quot;about&quot;&gt; 
        &lt;map:script src=&quot;./about.php&quot;/&gt; 
        &lt;map:xsl src=&quot;./about.xsl&quot;/&gt; 
    &lt;/map:gate&gt; 
                
    &lt;map:gate name=&quot;contact&quot;&gt; 
        &lt;map:script src=&quot;./contact.php&quot;/&gt; 
        &lt;map:xsl src=&quot;./contact.xsl&quot; /&gt; 
    &lt;/map:gate&gt; 

&lt;/map:sitemap&gt; </pre></pre>
<p>In this simple example, our web application has 2 'pages' or 'gates', contact 
  and about. A url request for these might look like this: www.nexista.com/index.php?nid=contact. 
  All incoming requests, are handled by the rootmost index.php (or whatever the 
  loader page is).</p>
<p>Index.php's task is to load the necessary libraries, initializes some variables, 
  and process the correct gate based on the switchbox definition.</p>
<p>Coming back to our sample sitemap, we see that we have defined 2 gates. Each 
  of these gates is made up of individual components or modules. In our case we 
  see that we have a 'script' module and an 'xsl' module. Each has a predefined 
  task to perform. Data connectivity between these is performed from a top down 
  approach and is handled transparently by the Flow class. Please refer to the <a href="../Nexista/Flow.html">Flow</a> section for an explanation 
  of the inner workings of Flow.</p></span>
 
 
 <span><a name="reference"></a><h2 class="title">Reference</h2><p>This is a reference for validator file directives</p>
 <ul mark = "bullet"><li><p><a href="../Nexista/tutorial_sitemap.gates.pkg.html">map:gates</a></p></li>
<li><p><a href="../Nexista/tutorial_sitemap.prepend.pkg.html">map:prepend</a></p></li>
<li><p><a href="../Nexista/tutorial_sitemap.include.pkg.html">map:include</a></p></li>
<li><p><a href="../Nexista/tutorial_sitemap.gate.pkg.html">map:gate</a></p></li>
<li><p><a href="../Nexista/tutorial_sitemap.if.pkg.html">map:if</a></p></li>
<li><p><a href="../Nexista/tutorial_sitemap.true.pkg.html">map:true</a></p></li>
<li><p><a href="../Nexista/tutorial_sitemap.false.pkg.html">map:false</a></p></li>
<li><p><a href="../Nexista/tutorial_sitemap.validator.pkg.html">map:validator</a></p></li>
<li><p><a href="../Nexista/tutorial_sitemap.valid.pkg.html">map:valid</a></p></li>
<li><p><a href="../Nexista/tutorial_sitemap.invalid.pkg.html">map:invalid</a></p></li>
<li><p><a href="../Nexista/tutorial_sitemap.switch.pkg.html">map:switch</a></p></li>
<li><p><a href="../Nexista/tutorial_sitemap.case.pkg.html">map:case</a></p></li>
<li><p><a href="../Nexista/tutorial_sitemap.default.pkg.html">map:default</a></p></li>
<li><p><a href="../Nexista/tutorial_sitemap.block.pkg.html">map:block</a></p></li>
<li><p><a href="../Nexista/tutorial_sitemap.insert.pkg.html">map:insert</a></p></li>
<li><p><a href="../Nexista/tutorial_sitemap.set.pkg.html">map:set</a></p></li>
<li><p><a href="../Nexista/tutorial_sitemap.script.pkg.html">map:script</a></p></li>
<li><p><a href="../Nexista/tutorial_sitemap.xml.pkg.html">map:xml</a></p></li>
<li><p><a href="../Nexista/tutorial_sitemap.xsl.pkg.html">map:xsl</a></p></li>
<li><p><a href="../Nexista/tutorial_sitemap.query.pkg.html">map:query</a></p></li>
<li><p><a href="../Nexista/tutorial_sitemap.action.pkg.html">map:action</a></p></li>
<li><p><a href="../Nexista/tutorial_sitemap.output.pkg.html">map:output</a></p></li>
<li><p><a href="../Nexista/tutorial_sitemap.debug.pkg.html">map:debug</a></p></li>
<li><p><a href="../Nexista/tutorial_sitemap.raw.pkg.html">map:raw</a></p></li></ul></span></div>

	<table class="tutorial-nav-box">
	<tr>
		<td style="width: 30%">
							<a href="../Nexista/tutorial_reference.pkg.html"><img src="../media/images/previous_button.png" alt="Previous"></a>
					</td>
		<td style="text-align: center">
							<a href="../Nexista/tutorial_reference.pkg.html"><img src="../media/images/up_button.png" alt="Up"></a>
					</td>
		<td style="text-align: right; width: 30%">
							<a href="../Nexista/tutorial_sitemap.gates.pkg.html"><img src="../media/images/next_button.png" alt="Next"></a>
					</td>
	</tr>
	<tr>
		<td style="width: 30%">
							<span class="detail">Reference</span>
					</td>
		<td style="text-align: center">
							<span class="detail">Reference</span>
					</td>
		<td style="text-align: right; width: 30%">
							<span class="detail">map:gates</span>
					</td>
	</tr>
</table>
	
	<p class="notes" id="credit">
		Documentation generated on Wed, 03 May 2006 13:48:43 -0700 by <a href="http://www.phpdoc.org" target="_blank">phpDocumentor 1.3.0RC3</a>
	</p>
	</div></body>
</html>